package com.jt.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.cors.reactive.CorsWebFilter;


//@Configuration
public class CorsFilterConfig {
    public CorsWebFilter corsFilter(){
        //1，构建基于url方式的跨域配置
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        //2.进行跨域配置
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.addAllowedOrigin("*");
        configuration.addAllowedHeader("*");
        configuration.addAllowedMethod("*");
        configuration.setAllowCredentials(true);
        source.registerCorsConfiguration("/**", configuration);
        return new CorsWebFilter(source);

    }
    //跨域分析

//1)@CrossOrigin 可以从controller层面解决单个controller跨域问题

//2)服务中的CorsFilter 这个spring webmvc中给出过滤器层面的跨域,
//可以解决多个controller的跨域问题

//3)网关中的CorsWebFilter 这个是spring webflux中的过滤器,
//可以从网关层面解决多个服务的跨域问题,这就不需要每个服务都写一遍跨域了
}
